package com.jwds.digital.bios.business.service.service.dispatch;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jwds.digital.bios.business.core.infrastructure.dto.dispatch.DispatchInternalTransportReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.entity.dispatch.DispatchInternalTransport;
import com.jwds.digital.bios.business.core.infrastructure.vo.dispatch.DispatchInternalTransportRespVO;
import com.jwds.digital.bios.business.core.infrastructure.vo.feign.FlowBasicRespVO;
import com.jwds.tdc.framework.application.lib.page.PageRequest;
import com.jwds.tdc.framework.application.lib.page.PageResponse;

import java.util.List;

/**
 * 内部转运调度接口
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public interface IDispatchInternalTransportService extends IService<DispatchInternalTransport>{

  /**
   * 通过id查询
   * @param id 主键id
   * @return RespVO 查询结果
   */
  DispatchInternalTransportRespVO queryById(Long id);

  /**
   * 分页查询
   * @param pageRequest 分页查询参数
   * @return pageResponse 分页查询结果
   */
  PageResponse<DispatchInternalTransportRespVO> page(PageRequest<DispatchInternalTransportReqDTO> pageRequest);


  /**
   * 新增
   * @param reqDto 新增对象
   */
  void add(DispatchInternalTransportReqDTO reqDto);

  /**
   * 批量新增
   * @param reqDtoList 新增对象列表
   */
  void batchAdd(List<DispatchInternalTransportReqDTO> reqDtoList);

  /**
   * 更新
   * @param reqDto 更新对象
   */
  void update(DispatchInternalTransportReqDTO reqDto);

  /**
   * 根据Id删除
   * @param id 主键id
   */
  void delete(Long id);

  /**
   * 批量删除
   * @param ids 主键id列表
   */
  void batchDelete(List<Long> ids);


  List<String> StartingPoint(String originPointion);

  List<String> destDevice(String originDevice);

  List<String> originDevice(DispatchInternalTransportReqDTO reqDTO);

  DispatchInternalTransportRespVO execute(DispatchInternalTransportReqDTO reqDTO);

  List<DispatchInternalTransportRespVO> listBlastFurnace(String binName);

  /**********扩展查询************/

}
